/* VlcSoundControl widget */

#ifndef __VLC_SOUND_CONTROL_H
#define __VLC_SOUND_CONTROL_H

#include <gtk/gtk.h>

G_BEGIN_DECLS

#define VLC_TYPE_SOUND_CONTROL         (vlc_sound_control_get_type ())
#define VLC_SOUND_CONTROL(obj)         (G_TYPE_CHECK_INSTANCE_CAST ((obj), VLC_TYPE_SOUND_CONTROL, VlcSoundControl))
#define VLC_SOUND_CONTROL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VLC_TYPE_SOUND_CONTROL, VlcSoundControlClass))
#define VLC_IS_SOUND_CONTROL(obj)      (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VLC_TYPE_SOUND_CONTROL))

typedef struct _VlcSoundControl VlcSoundControl;
typedef struct _VlcSoundControlClass VlcSoundControlClass;

struct _VlcSoundControl
{
  GtkHBox hbox;
  
  /* Private */
  GtkWidget *button;
  GtkWidget *hscale;
  
  gdouble value;
  gdouble muted_value;
  
  GdkPixbuf *audio_muted;
  GdkPixbuf *audio_low;
  GdkPixbuf *audio_medium;
  GdkPixbuf *audio_high;

};

struct _VlcSoundControlClass
{
  GtkHBoxClass hbox_class;
  
  /* signal */
  void (* sound_value_changed) (VlcSoundControl *sound_control,
                                gdouble value);
};

GType      vlc_sound_control_get_type (void) G_GNUC_CONST;
GtkWidget* vlc_sound_control_new      (void);

G_END_DECLS

#endif /* __VLC_SOUND_CONTROL_H */
